<?php

/**
 * This is the model class for table "page".
 *
 * The followings are the available columns in table 'page':
 * @property integer $id
 * @property string $url
 * @property string $title
 * @property string $content
 * @property string $datecreate
 * @property string $dateup
 * @property string $meta
 * @property string $keywork
 */
class Page extends CActiveRecord {

    /**
     * @return string the associated database table name
     */
    public function tableName() {
        return 'page';
    }

    /**
     * @return array validation rules for model attributes.
     */
    public function rules() {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('url, title, content, flag, uid', 'required'),
            array('flag, uid', 'numerical', 'integerOnly'=>true),
            array('url, title', 'length', 'max'=>200),
            array('meta', 'length', 'max'=>1000),
            array('keywork', 'length', 'max'=>500),
            array('datecreate, dateup', 'safe'),
       
            array('url', 'unique', 'message' => 'tên hiễn thị url đã tồn tại'),
           
            array('id, url, title, content, datecreate, dateup, meta, keywork, flag, uid', 'safe', 'on'=>'search'),
        );
    }

    /**
     * @return array relational rules.
     */
    public function relations() {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array(
        );
    }

    /**
     * @return array customized attribute labels (name=>label)
     */
    public function attributeLabels() {
        return array(
            'id' => 'ID',
            'url' => 'Tên hiễn thị Url',
            'title' => 'Tiêu đề',
            'content' => 'Nội dung',
            'datecreate' => 'Ngày tạo',
            'dateup' => 'Ngày cập nhật',
            'meta' => 'Từ khóa seo',
            'keywork' => 'Mô tả',
            'flag' => 'Trạng thái',
            'hinh' => 'Hình (100x100)',
            'cateid' => 'Danh mục',
            'addfile' => 'Download',
            'fileaddname' => 'File đính kèm',
        );
    }

    /**
     * Retrieves a list of models based on the current search/filter conditions.
     *
     * Typical usecase:
     * - Initialize the model fields with values from filter form.
     * - Execute this method to get CActiveDataProvider instance which will filter
     * models according to data in model fields.
     * - Pass data provider to CGridView, CListView or any similar widget.
     *
     * @return CActiveDataProvider the data provider that can return the models
     * based on the search/filter conditions.
     */
    public function search() {
        // @todo Please modify the following code to remove attributes that should not be searched.

        $criteria=new CDbCriteria;

        $criteria->compare('id',$this->id);
        $criteria->compare('url',$this->url,true);
        $criteria->compare('title',$this->title,true);
        $criteria->compare('content',$this->content,true);
        $criteria->compare('datecreate',$this->datecreate,true);
        $criteria->compare('dateup',$this->dateup,true);
        $criteria->compare('meta',$this->meta,true);
        $criteria->compare('keywork',$this->keywork,true);
        $criteria->compare('flag',$this->flag);
        $criteria->compare('uid',$this->uid);
    

        return new CActiveDataProvider($this, array(
            'criteria'=>$criteria,
        ));
    }

    public function findByUrl($url) {
        return $this->find('url=:url', array(':url' => $url));
    }

    /**
     * Returns the static model of the specified AR class.
     * Please note that you should have this exact method in all your CActiveRecord descendants!
     * @param string $className active record class name.
     * @return Page the static model class
     */
    public static function model($className = __CLASS__) {
        return parent::model($className);
    }

}
